var runtime.gcBitsArenas
35 uses
runtime (current package)
malloc.go#L465: lockInit(&gcBitsArenas.lock, lockRankGcBitsArenas)
mheap.go#L2895: var gcBitsArenas struct {
mheap.go#L2926: head := (*gcBitsArena)(atomic.Loadp(unsafe.Pointer(&gcBitsArenas.next)))
mheap.go#L2933: lock(&gcBitsArenas.lock)
mheap.go#L2937: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2938: unlock(&gcBitsArenas.lock)
mheap.go#L2947: if p := gcBitsArenas.next.tryAlloc(bytesNeeded); p != nil {
mheap.go#L2950: fresh.next = gcBitsArenas.free
mheap.go#L2951: gcBitsArenas.free = fresh
mheap.go#L2952: unlock(&gcBitsArenas.lock)
mheap.go#L2964: fresh.next = gcBitsArenas.next
mheap.go#L2965: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), unsafe.Pointer(fresh))
mheap.go#L2967: unlock(&gcBitsArenas.lock)
mheap.go#L2996: lock(&gcBitsArenas.lock)
mheap.go#L2997: if gcBitsArenas.previous != nil {
mheap.go#L2998: if gcBitsArenas.free == nil {
mheap.go#L2999: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L3002: last := gcBitsArenas.previous
mheap.go#L3003: for last = gcBitsArenas.previous; last.next != nil; last = last.next {
mheap.go#L3005: last.next = gcBitsArenas.free
mheap.go#L3006: gcBitsArenas.free = gcBitsArenas.previous
mheap.go#L3009: gcBitsArenas.previous = gcBitsArenas.current
mheap.go#L3010: gcBitsArenas.current = gcBitsArenas.next
mheap.go#L3011: atomic.StorepNoWB(unsafe.Pointer(&gcBitsArenas.next), nil) // newMarkBits calls newArena when needed
mheap.go#L3012: unlock(&gcBitsArenas.lock)
mheap.go#L3019: if gcBitsArenas.free == nil {
mheap.go#L3020: unlock(&gcBitsArenas.lock)
mheap.go#L3025: lock(&gcBitsArenas.lock)
mheap.go#L3027: result = gcBitsArenas.free
mheap.go#L3028: gcBitsArenas.free = gcBitsArenas.free.next
The pages are generated with Golds v0.7.6. (GOOS=linux GOARCH=amd64)